/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package pe.edu.pucp.Maestros.Controlador.CargaXML;

import java.io.IOException;
import java.util.Date;
import java.util.Iterator;
import java.util.List;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.JDOMException;
import org.jdom.input.SAXBuilder;
import pe.edu.pucp.Maestros.DAO.UsuarioXMLDAO;
import pe.edu.pucp.Maestros.Vista.CargaXMLGUI;
import pe.edu.pucp.Modelo.Aeropuerto;
import pe.edu.pucp.Modelo.Conexion;
import pe.edu.pucp.Modelo.EstadoUsuario;
import pe.edu.pucp.Modelo.Perfil;
import pe.edu.pucp.Modelo.TipoCorreo;
import pe.edu.pucp.Modelo.TipoDocumento;
import pe.edu.pucp.Modelo.Usuario;
import pe.edu.pucp.Util.Constante;
import pe.edu.pucp.Util.LogHelper;

/**
 *
 * @author oscar
 */
public class UsuarioXMLControlador {
    private Usuario usuario;
    private UsuarioXMLDAO m;
    private CargaXMLGUI view;
    
    public UsuarioXMLControlador(UsuarioXMLDAO m, CargaXMLGUI usuarioView) {
        this.m = m;
        this.view = usuarioView;
    }
    
    public void CargarPrueba(Usuario usr){
        if (usuario == null) {
            usuario = new Usuario();
        }     
        try { 
            SAXBuilder builder = new SAXBuilder(false); 
            Document doc = builder.build(view.getNombreArchivoDatosIniciales()+"/USUARIO.xml");

            Element raiz7 = doc.getRootElement(); 
            List equipos = raiz7.getChildren("Usuario"); 
            Iterator i = equipos.iterator(); 
            while (i.hasNext()) { 
                Element e7 = (Element) i.next();       
                int a1 = Integer.parseInt(e7.getChild("idperfil").getValue());
                int a2 = Integer.parseInt(e7.getChild("idestado").getValue());
                int a3 = Integer.parseInt(e7.getChild("idtipodoc").getValue());
                int a4 = Integer.parseInt(e7.getChild("idtipocorreo").getValue());
                int a5 = Integer.parseInt(e7.getChild("idconexion").getValue());
                int a6 = Integer.parseInt(e7.getChild("idaeropuerto").getValue());
                String a7 = e7.getChild("documento").getValue();
                String a8 = e7.getChild("direccion").getValue();
                String a9 = e7.getChild("correo").getValue();
                String a10 = e7.getChild("telefono").getValue();
                String a11 = e7.getChild("nombre").getValue();
                String a12 = e7.getChild("apmaterno").getValue();
                String a13 = e7.getChild("appaterno").getValue();
                String a14 = e7.getChild("nombusr").getValue();
                int a15 = Integer.parseInt(e7.getChild("numfallo").getValue());
                int a16 = Integer.parseInt(e7.getChild("maxfallo").getValue());
                String a17 = e7.getChild("fechareg").getValue();

                Perfil c = new Perfil();
                c.setIdperfil(a1);

                EstadoUsuario d = new EstadoUsuario();
                d.setIdestado(a2);

                TipoDocumento e = new TipoDocumento();
                e.setIdtipodoc(a3);

                TipoCorreo f = new TipoCorreo();
                f.setIdtipocorreo(a4);

                Conexion g = new Conexion();
                g.setIdconexion(a5);

                Aeropuerto h = new Aeropuerto();
                h.setIdaeropuerto(a6);

                usuario.setPerfil(c);
                usuario.setEstadoUsuario(d);
                usuario.setTipoDocumento(e);
                usuario.setTipoCorreo(f);
                usuario.setConexion(g);
                usuario.setAeropuerto(h);
                usuario.setDocumento(a7);
                usuario.setDireccion(a8);
                usuario.setCorreo(a9);
                usuario.setTelefono(a10);
                usuario.setNombre(a11);
                usuario.setApmaterno(a12);
                usuario.setAppaterno(a13);
                usuario.setNombusr(a14);
                usuario.setNumfallo(a15);
                usuario.setMaxfallo(a16);
                usuario.setFechareg(new Date());

                m.guardarUsuario(usuario);                    
            } 
            LogHelper.registrarOperacion(usr, Constante.ACCION_CARGAR, Constante.OBJETO_USUARIO, "Se cargaron "+equipos.size()+" registros de usuarios");
        } 
        catch (JDOMException | IOException | NumberFormatException e7) { }         
    }  
}
